package com.cskaoyan.javase.oop1._13access._1clazz._0one;

/**
 * @description: 访问权限修饰符修饰class
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

//import com.cskaoyan.javase.oop1._13access._1clazz._1two.A;
import com.cskaoyan.javase.oop1._13access._1clazz._1two.Test;

/**
 * 访问权限修饰符在修饰class时,只有两个可用
 *      1,public: 表示公共的,任何包下都能访问(不能跨工程)
 *      2,(缺省的)不写任何关键字: 表示同包下可以访问
 * 注意事项:
 *      1,非public修饰的类不能跨包访问,原因不是没有导包而是没有权限
 *      2,class的访问权限要大于其中的成员,如果class没有权限访问,其中的成员不论任何权限都访问不到
 *      3,为什么类的访问权限修饰符只有两种?
 *          因为一个class是独立的,它没有属于谁的概念,也没有被谁私有,被谁保护的概念
 *          所以没有私有和受保护两种权限
 *
 *          如果想要class具有私有和受保护两种权限,咋办?
 *          把类放入另一类当中,嵌套定义类,这样就有了私有和受保护的概念
 *          所以(成员位置)内部类具有四种访问权限
 *
 */
public class Demo {

    public static void main(String[] args) {
        //访问public类
        Test t = new Test();

        //new A()
        //'com.cskaoyan.javase.oop1._13access._1clazz._1two.A' is not public in 'com.cskaoyan.javase.oop1._13access._1clazz._1two'. Cannot be accessed from outside package
        //System.out.println(A.a);
    }

}


